package com.manage.function.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.manage.common.annotation.Excel;
import com.manage.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 内容管理对象 article
 *
 * @author jinghj
 * @date 2025-03-04
 */
@ApiModel(value = "Article", description = "内容管理对象 article 的详细信息")
public class Article extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /**
     * 主键，自增ID
     *
     */
    @ApiModelProperty(value = "主键，自增ID")
    private Long id;

    /**
     * 文章标题
     *
     */
    @ApiModelProperty(value = "文章标题")
    @Excel(name = "文章标题")
    private String title;

    /**
     * 文章内容
     *
     */
    @ApiModelProperty(value = "文章内容")
    @Excel(name = "文章内容")
    private String  content;

    /**
     * 创建者
     *
     */
    @ApiModelProperty(value = "创建者")
    @Excel(name = "创建者")
    private String creator;

    /**
     * 创建时间
     *
     */
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /**
     * 修改者
     *
     */
    @ApiModelProperty(value = "修改者")
    @Excel(name = "修改者")
    private String modifier;

    /**
     * 修改时间
     *
     */
    @ApiModelProperty(value = "修改时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date modifiedAt;

    /**
     * 设置 id 的值
     * @param id id 的值
     */
    public void setId(Long id)
    {
        this.id = id;
    }

    /**
     * 获取 id 的值
     * @return id 的值
     */
    public Long getId()
    {
        return id;
    }
    /**
     * 设置 title 的值
     * @param title title 的值
     */
    public void setTitle(String title)
    {
        this.title = title;
    }

    /**
     * 获取 title 的值
     * @return title 的值
     */
    public String getTitle()
    {
        return title;
    }
    /**
     * 设置 content 的值
     * @param content content 的值
     */
    public void setContent(String content)
    {
        this.content = content;
    }

    /**
     * 获取 content 的值
     * @return content 的值
     */
    public String getContent()
    {
        return content;
    }
    /**
     * 设置 creator 的值
     * @param creator creator 的值
     */
    public void setCreator(String creator)
    {
        this.creator = creator;
    }

    /**
     * 获取 creator 的值
     * @return creator 的值
     */
    public String getCreator()
    {
        return creator;
    }
    /**
     * 设置 createdAt 的值
     * @param createdAt createdAt 的值
     */
    public void setCreatedAt(Date createdAt)
    {
        this.createdAt = createdAt;
    }

    /**
     * 获取 createdAt 的值
     * @return createdAt 的值
     */
    public Date getCreatedAt()
    {
        return createdAt;
    }
    /**
     * 设置 modifier 的值
     * @param modifier modifier 的值
     */
    public void setModifier(String modifier)
    {
        this.modifier = modifier;
    }

    /**
     * 获取 modifier 的值
     * @return modifier 的值
     */
    public String getModifier()
    {
        return modifier;
    }
    /**
     * 设置 modifiedAt 的值
     * @param modifiedAt modifiedAt 的值
     */
    public void setModifiedAt(Date modifiedAt)
    {
        this.modifiedAt = modifiedAt;
    }

    /**
     * 获取 modifiedAt 的值
     * @return modifiedAt 的值
     */
    public Date getModifiedAt()
    {
        return modifiedAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("title", getTitle())
                .append("content", getContent())
                .append("creator", getCreator())
                .append("createdAt", getCreatedAt())
                .append("modifier", getModifier())
                .append("modifiedAt", getModifiedAt())
                .toString();
    }
}
